package logics

import (
	"context"
	"encoding/json"
	"errors"
	"git.900sui.cn/kc/rpcPay/common/lib"
	"git.900sui.cn/kc/rpcinterface/interface/pay"
	"strconv"
)

type XindaluLogic struct {
}

func (x *XindaluLogic) GetPaypalTag(ctx context.Context, args *pay.ArgsGetPaypalTag, reples *pay.ReplyGetPaypalTag) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	xinDaLupayJson, err := lib.Xindalupay.GetPaypalTag(args)
	if err != nil {
		return err
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), reples)
	if err != nil {
		return err
	}
	return err
}
func (x *XindaluLogic) TradeQuery(ctx context.Context, args *pay.ArgsTradeQuery, replies *pay.ReplyTradeQuery) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	xinDaLupayJson, err := lib.Xindalupay.TradeQuery(args)
	if err != nil {
		return err
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), replies)
	if err != nil {
		return err
	}
	return err
}
func (x *XindaluLogic) GetwxInfo(ctx context.Context, args *pay.ArgsGetwxInfo, relies *pay.ReplyGetwxInfo) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	xinDaLupayJson, err := lib.Xindalupay.WcharGetWino(args)
	if err != nil {
		return err
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), relies)
	if err != nil {
		return err
	}
	return err
}
func (x *XindaluLogic) UnionidOrder(ctx context.Context, args *pay.ArgsunionidOrder, replies *pay.ReplyUniondOrder) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	//下面需要清除cid信息
	xinDaLupayJson, err := lib.Xindalupay.UnionidOrderService(args)
	if err != nil {
		return err
	}
	if xinDaLupayJson == nil {
		return errors.New("结果为空")
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), replies)
	if err != nil {
		return err
	}
	return err
}
func (x *XindaluLogic) Notify(ctx context.Context, replies *pay.ReplyNotify) error {
	return nil
}
func (x *XindaluLogic) OrderAccount(ctx context.Context, args *pay.ArgsOrderAccount, replies *pay.ReplyOrderAccount) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	xinDaLupayJson, err := lib.Xindalupay.OrderAccount(args)
	if err != nil {
		return err
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), replies)
	if err != nil {
		return err
	}
	return err
}
func (x *XindaluLogic) MerchantAccountQuery(ctx context.Context, args *pay.ArgsMerchantAccountQuery, replies *pay.ReplyMerchantAccountQuery) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	xinDaLupayJson, err := lib.Xindalupay.MerchantAccountQuery(args)
	if err != nil {
		return err
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), replies)
	if err != nil {
		return err
	}
	return err
}
func (x *XindaluLogic) GetOpenid(ctx context.Context, args *pay.ArgsGetOpenid, reply *pay.ReplyGetOpenid) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	xinDaLupayJson, err := lib.Xindalupay.GetOpenid(args)
	if err != nil {
		return err
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), reply)
	if err != nil {
		return err
	}
	return err
}
func (x *XindaluLogic) GetAliUserInfo(ctx context.Context, args *pay.ArgsGetAliUserInfo, reply *pay.ReplyGetAliUserInfo) error {
	//默认为388 信息
	cidInt, _ := strconv.Atoi(args.Cid)
	if cidInt == 0 {
		cidInt = lib.CHANNELAREA_xindalu
	}
	err := lib.Xindalupay.Init(cidInt)
	if err != nil {
		return err
	}
	xinDaLupayJson, err := lib.Xindalupay.GetAliUserId(args)
	if err != nil {
		return err
	}
	err = json.Unmarshal([]byte(xinDaLupayJson.String()), reply)
	if err != nil {
		return err
	}
	return err
}
